package com.xl.singleton.lazy;
/*懒汉式：什么时候用什么时候创建对象
		1:构造器私有化
		2声明一个私有的静态的对象变量
		3:提供一个公开的静态获取对象的方法

		注意：创建时间恰当
		注意：注意：多线程的情况下，容易出现多个对象
		优点是线程安全，懒加载 缺点是效率不高
*/
public class LazyOne {
	
	private static LazyOne student;
	
	public static LazyOne newInstance(){
		//提高效率，如果第一次创建对象成功，后面就不用进入同步当中，直接返回对象即可
		if(student==null){
			synchronized (LazyOne.class) {
				//如果是第一次调用方法，进入if，创建对象
				if(student==null){
					student = new LazyOne();
				}
			}
		}
		
		return student;
	}
	
	private LazyOne(){
		
	}

}
